package com.winter.boot.context;

import com.winter.boot.config.BeanFactory;
import com.winter.boot.config.DefaultBeanFactory;
import com.winter.boot.config.RootBeanDefinition;

import java.util.List;

public interface ApplicationContext {


    void refresh() throws InstantiationException, IllegalAccessException;

    DefaultBeanFactory getDefaultBeanFactory();

    void registerBeanPostProcessors(BeanFactory beanFactory) throws InstantiationException, IllegalAccessException;

    void createBean(String beanName, RootBeanDefinition beanDefinition) throws InstantiationException, IllegalAccessException;

    Object getBean(String beanName);

    List<Class<?>> getParams(String beanName);
}
